package com.pubinfo.passbook.common.service.contract;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.pubinfo.passbook.common.entity.TContractInvoiceApply;
import com.pubinfo.passbook.common.model.dto.contract.ApplyInvoiceParam;
import com.pubinfo.passbook.common.model.dto.contract.ContractIdParam;
import com.pubinfo.passbook.common.model.dto.contract.FeeListParam;
import com.pubinfo.passbook.common.model.http.eip.UserInfo;
import com.pubinfo.passbook.common.model.vo.contract.ContractRelateDocVo;
import com.pubinfo.passbook.common.model.vo.contract.FapiaoDetailVo;
import com.pubinfo.passbook.common.model.vo.contract.FeeCollectionListVo;

import java.util.List;

/**
 * @author admin
 * @description 针对表【t_contract_invoice_apply(发票申请单)】的数据库操作Service
 * @createDate 2021-12-06 14:45:14
 */
public interface TContractInvoiceApplyService extends IService<TContractInvoiceApply> {

    /**
     * 获取合同发票申请单
     */
    List<TContractInvoiceApply> getContractApplies(Integer contractId);

    /**
     * 可开票合同查询
     *
     * @return
     */
    IPage<FeeCollectionListVo> selectUseableList(FeeListParam feeListParam);

    /**
     * 发票详情
     */
    List<FapiaoDetailVo> invoiceDetail(ContractIdParam param);

    /**
     * 统一平台订单受理
     */
    Boolean orderApply(UserInfo user,ApplyInvoiceParam param);

    /**
     * 获取合同相关单据
     */
    List<ContractRelateDocVo> getContractRelateDoc(Integer contractId);

}
